import html2canvas from "html2canvas";
import { jsPDF } from "jspdf"; // 确保已安装 jsPDF

export const downloadPDF = (page, fileName = 'download.pdf')=> {
    // 使用 html2canvas 生成页的 canvas
    // 使用 html2canvas 生成页的 canvas
    html2canvas(page, { scale: 2 }).then(function (canvas) {
        // 创建 jsPDF 实例
        const pdf = new jsPDF('p', 'mm', 'a4'); // 创建 A4 纸的 PDF 文档

        // 根据 canvas 提取图像数据
        const imgData = canvas.toDataURL('image/png'); // 将 canvas 转为 Base64 数据

        // PDF 中的图像添加到页面
        const imgWidth = 210; // A4 纸宽度 (mm)
        const pageHeight = pdf.internal.pageSize.height; // 获取 PDF 页面的高度 (mm)
        const imgHeight = 297; // 根据宽度计算图像高度

        let heightLeft = imgHeight; // 剩余的页面高度

        let position = 0; // PDF 中的起始位置

        // 如果图像高度大于页面高度，则需要分多页
        pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
        heightLeft -= pageHeight;

        while (heightLeft >= 0) {
            position = heightLeft - imgHeight; // 新页面的位置
            pdf.addPage(); // 添加新页面
            pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
            heightLeft -= pageHeight; // 更新剩余高度
        }

        // 启动 PDF 下载
        pdf.save(fileName);
    });
};
